<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>js基础语法</title>
  <script>
    /**
     *  1. 变量与数据类型
     *  1.1 变量：存放于内存中，变量命名原则：
     *  ① 变量名只能是数字、下划线、字母、$四种字符组成，首字符不能是数字。
     *  ② 变量名不能是系统关键字，如：var,function,let,for,if...
     *  ③ 变量名区分大小写，如：name与Name代表两个不同的变量。
     *  1.2 数据类型：
     *  ① Number：代表数字，其中有整数和小数。
     *  ② string: 代表字符串，可以用双引号或单引号表示。
     *  ③ object：代表对象类型，可以有json对象，null，array，function
     *  ④ undefined: 代表未定义类型。
     *  ⑤ boolean：代表布尔类型，只能取值：true或false
      */
    function test01(){
      var a = 10
      console.log("a的类型：",typeof a)       // a的类型： number
      a = true
      console.log("a的类型：",typeof a)       // a的类型： number
      a = 'hello'
      console.log("a的类型：",typeof a)       // a的类型： number
      a = {}
      console.log("a的类型：",typeof a)       // a的类型： number
      a = []
      console.log("a的类型：",Object.prototype.toString.call(a))    //a的类型： [object Array]
      a = function(){}
      console.log("a的类型：",Object.prototype.toString.call(a))    //a的类型： [object Function]
    }
    // test01()

    // 2. 条件结构
    // 2.1 if条件结构
    // 案例一：根据当前小时数，打印问候信息！(知识点：使用多重if结构)
    function test02(){
      // 1. 得到小时数
      let hour = new Date().getHours()
      // 2. 根据小时数打印问候信息
      if (hour < 9){
        console.log("早上好")
      }else if(hour < 12){
        console.log("上午好")
      }else if(hour < 14){
        console.log("中午好")
      }else if(hour < 18){
        console.log("下午好")
      }else{
        console.log("晚上好")
      }
    }
    // test02()
    // 2.2 多分支选择结构(switch...case)
    // 案例二：根据输入的字母，判断是否是元单字母？
    function test03(){
      let ch = prompt("请输入一个字母：","","")
      switch (ch){
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
          console.log(ch + "是一个元音字母！")
          break
        default:
          console.log(ch + "不是一个元音字母，")
      }
    }
    /**
     * switch...case小结：
     * 1、case后的break可以省略，但是，省略后会一直向下执行，直到遇到第一个break停止。
     * 2、当case后的所有的等值判断都不成立时，会执行default语句块中的代码。
     * 3、case后的常量值不能重复，否则，这里会警告，其它语言报错！
     */
    test03()
  </script>

</head>
<body>

</body>
</html>
